home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / imdb / rexx / excelsior_bbs / mdb.rexx < prev    next >
OS/2 REXX Batch file  |  1986-12-05  |  7KB  |  247 lines

  1. /* mdb.rexx   (c) 1994 by Michael A. Bode                  */
  2. /* $VER: mdb.rexx 1.0ger (20.11.94)                        */
  3.  
  4. /* Original mdb.trans 1.0ger by Georg 'Gio' Magschok       */
  5.  
  6. /* Use this ARexx-script for accessing MovieDataBaseMUI    */
  7. /* from within Excelsior! Professional BBS.                */
  8.  
  9. /* Feel free to alter onscreen-texts to fit your language  */
  10.  
  11. options results
  12.  
  13. GETUSER 1 ; usern = result
  14. GETUSER 23 ; bbsline = result
  15.  
  16. menuname ='mdbmenu'
  17. selmenu  ='mdbselmenu'
  18.  
  19. /* Alter the next line in order to start MovieMUI properly ! */
  20.  
  21. mmui = 'run dh0:MovieDataBase/MovieMUI errorfile errorlevel=0 debuglevel=0 quiet'
  22.  
  23. autoquit = 1
  24. tempfile ='t:mdbtemp.'||bbsline
  25.  
  26. if (~show('p','MOVIEMUI')) then do
  27.  TRANSMIT 'MovieMUI wird gestartet...'
  28.  address command mmui
  29.  address command 'waitforport MOVIEMUI'
  30. end
  31. NEWLINE
  32.  
  33. SYSOPLOG usern||' hat die MovieDataBase gestartet !'
  34. CHANGEWHAT 'MovieDataBase'
  35.  
  36. do until cmd='E'
  37.  SENDMENU menuname
  38.  GETUSER 7 ; time=result
  39.  QUERY '\c2[\c3Zeit: \c4'||time||'\c2] [\c3Befehle: \c4F P S I ? E \c2] \c5'
  40.  cmd=upper(result)
  41.  if cmd='###PANIC' then call stopit
  42.  select
  43.   when (cmd='?' | cmd='') then SENDMENU menuname
  44.   when cmd='F' then call moviesearch
  45.   when cmd='P' then call personsearch
  46.   when cmd='S' then call selectivesearch
  47.   when cmd='I' then call infor
  48.   when cmd='E' then NEWLINE
  49.   otherwise do
  50.     NEWLINE
  51.     TRANSMIT "\c2Dieser Befehl ist hier unbekannt, versuch's mal mit "||'"\c1?\c2" !'
  52.     GETCHAR
  53.   end
  54.  end
  55. end
  56.  
  57. stopit:
  58. if autoquit=1 then address 'MOVIEMUI' 'QUIT'
  59. exit
  60.  
  61. moviesearch:
  62.  NEWLINE
  63.  QUERY 'Nach welchem Film suchen ? ' ; movie=result
  64.  if movie~='RESULT' & movie~='' & movie~='###PANIC' then do
  65.   TRANSMIT "MovieDataBase wird nach '"||movie||"' durchsucht..."
  66.   address 'MOVIEMUI' 'GET "'||movie||'" FROM MOVIE' ; mytext=result
  67.   if mytext='RESULT' | RC~=0 then do
  68.    TRANSMIT "\c2Der Film wurde nicht gefunden ! Probier's mal mit selektiver Suche !"
  69.    GETCHAR
  70.   end
  71.   else do
  72.    TRANSMIT '\c7'
  73.    call gibsaus
  74.   end
  75.  end
  76. return
  77.  
  78. personsearch:
  79.  NEWLINE
  80.  QUERY 'Nach welcher Person suchen (Nachname, Vorname) ? ' ; person=result
  81.  if person~='RESULT' & person~='' & person~='###PANIC' then do
  82.   TRANSMIT "MovieDataBase wird nach '"||person||"' durchsucht..."
  83.   address 'MOVIEMUI' 'GET "'||person||'" FROM ANY' ; mytext=result
  84.   if mytext='RESULT' | RC~=0 then do
  85.    TRANSMIT "\c2Die Person wurde nicht gefunden ! Probier's mal mit selektiver Suche !"
  86.    GETCHAR
  87.   end
  88.   else do
  89.    TRANSMIT '\c7'
  90.    call gibsaus
  91.   end
  92.  end
  93. return
  94.  
  95. selectivesearch:
  96. NEWLINE
  97. address 'MOVIEMUI' 'UNSELECT KEY=0' ; skey=result
  98. numentries='alle'
  99. do until cmd='+'
  100.  SENDMENU selmenu
  101.  GETUSER 7 ; time=result
  102.  NEWLINE
  103.  TRANSMIT 'Es sind '||numentries||' Datensaetze selektiert !'
  104.  QUERY '\n1\c2[\c3Zeit: \c4'||time||'\c2] [\c3Befehle: \c40\c3-\c49 U N D W ? + \c2] \c5'
  105.  cmd=upper(result)
  106.  if CARRIER=0 then call stopit
  107.  einschr=0
  108.  select
  109.   when (cmd='?' | cmd='') then SENDMENU selmenu
  110.   when cmd='+' then NEWLINE
  111.   when cmd=''  then NEWLINE
  112.   when cmd='0' then do
  113.    sts='MOVIE' ; stl='Filmtitel' ; einschr=1 ; end
  114.   when cmd='1' then do
  115.    sts='ACR' ; stl='Schauspieler' ; einschr=1 ; end
  116.   when cmd='2' then do
  117.    sts='ACS' ; stl='Schauspielerin' ; einschr=1 ; end
  118.   when cmd='3' then do
  119.    sts='COMP' ; stl='Komponist' ; einschr=1 ; end
  120.   when cmd='4' then do
  121.    sts='COST' ; stl='Kostuem-Designer' ; einschr=1 ; end
  122.   when cmd='5' then do
  123.    sts='DIR' ; stl='Regisseur' ; einschr=1 ; end
  124.   when cmd='6' then do
  125.    sts='ED' ; stl='Editor' ; einschr=1 ; end
  126.   when cmd='7' then do
  127.    sts='PRDE' ; stl='Produktions-Designer' ; einschr=1 ; end
  128.   when cmd='8' then do
  129.    sts='PROD' ; stl='Produzent' ; einschr=1 ; end
  130.   when cmd='9' then do
  131.    sts='WRITE' ; stl='Autor' ; einschr=1 ; end
  132.   when cmd='U' then do
  133.     address 'MOVIEMUI' 'UNDOSELECT KEY='||skey ; numentries=result
  134.    end
  135.   when cmd='N' then do
  136.     NEWLINE
  137.     numentries='alle'
  138.     address 'MOVIEMUI' 'ENDSELECTION KEY='||skey
  139.     address 'MOVIEMUI' 'UNSELECT KEY=0' ; skey=result
  140.    end
  141.   when cmd='D' then call getsel
  142.   when cmd='W' then call getfromsel
  143.   otherwise do
  144.    NEWLINE
  145.    TRANSMIT "\c2Dieser Befehl ist hier unbekannt, versuch's mal mit "||'"\c1?\c2" !'
  146.    GETCHAR
  147.   end
  148.  end
  149.  if einschr=1 then do
  150.   NEWLINE
  151.   TRANSMIT 'Einschraenkungspattern (nach AmigaOS-Konventionen !)'
  152.   QUERY 'fuer '||stl||': ' ; mypat=result
  153.   if mypat~='RESULT' & mypat~='' then do
  154.    do while pos('*',mypat)>0
  155.     sternpos=pos('*',mypat)
  156.     mypat=left(mypat,sternpos-1)||'#?'||right(mypat,length(mypat)-sternpos)
  157.    end
  158.    TRANSMIT "MovieDataBase wird nach "||stl||"='"||mypat||"' durchsucht..."
  159.    address 'MOVIEMUI' 'SELECT KEY='||skey||' "'||mypat||'" FROM '||sts 
  160.    numentries=result
  161.    if RC~=0 then do
  162.     TRANSMIT '\c2Fehler beim Selektieren, mache Selektierung rueckgaengig...'
  163.     GETCHAR
  164.     address 'MOVIEMUI' 'UNDOSELECT KEY='||skey ; numentries=result
  165.    end
  166.   end
  167.  end
  168. end
  169. address 'MOVIEMUI' 'ENDSELECTION KEY='||skey
  170. cmd=''
  171. return
  172.  
  173. getsel:
  174.  NEWLINE
  175.  if numentries=0 then do
  176.   TRANSMIT '\c2Es sind keine Daten selektiert !'
  177.   GETCHAR ; end
  178.  else
  179.   if numentries > 100 | numentries='alle' then do
  180.    TRANSMIT '\c2Es sind mehr als 100 Datensaetze selektiert !'
  181.    TRANSMIT 'Bitte weiter einschraenken !'
  182.    GETCHAR
  183.   end
  184.   else do
  185.    address 'MOVIEMUI' 'GETSELECTION KEY='||skey ; mytext=result
  186.    if mytext='RESULT' | RC~=0 then do
  187.     TRANSMIT "\c2Tja, nix gefunden, sorry !"
  188.     GETCHAR ; end
  189.    else
  190.     TRANSMIT '\c7'
  191.     call gibsaus
  192.   end
  193. return
  194.  
  195. getfromsel:
  196.  NEWLINE
  197.  if numentries=0 then do
  198.   TRANSMIT '\c2Es sind keine Daten selektiert !'
  199.   GETCHAR ; end
  200.  else do
  201.   QUERY '\c2Welchen '||stl||' (Nummer \c11\c2...\c1'||numentries||'\c2) zeigen ? ' ; frose=result
  202.   if frose~='RESULT' & frose~='' & datatype(frose)='NUM' then
  203.    if frose>0 & frose<numentries+1 then do
  204.     TRANSMIT '\n1\c3Ein wenig Geduld bitte !'
  205.     address 'MOVIEMUI' 'GETFROMSELECTION KEY='||skey||' NUMBER='||frose ; mytext=result
  206.     if mytext='RESULT' | RC~=0 then do
  207.      TRANSMIT "\c2Tja, nix gefunden, sorry !"
  208.      GETCHAR ; end
  209.     else
  210.      TRANSMIT '\c7'
  211.      call gibsaus
  212.    end
  213.  end
  214. return
  215.  
  216. infor:
  217.  NEWLINE ; NEWLINE
  218.  TRANSMIT "\c6mdb.rexx fuer Excelsior!   V1.0ger (C)'94 by Michael A. Bode"
  219.  TRANSMIT "\c6mdb.trans fuer TABBS       V1.0ger (C)'94 by Georg 'Gio' Magschok"
  220.  address 'MOVIEMUI' 'INFO "title"' ; TRANSMIT '\c7'||result
  221.  address 'MOVIEMUI' 'INFO "author"' ; TRANSMIT 'by '||result
  222.  address 'MOVIEMUI' 'INFO "copyright"' ; TRANSMIT '(C) '||result
  223.  address 'MOVIEMUI' 'INFO "description"' ; TRANSMIT result
  224.  address 'MOVIEMUI' 'INFO "version"' ; TRANSMIT result
  225.  NEWLINE
  226.  address 'MOVIEMUI' 'GETSTATISTIC' ; mytext=result
  227.  TRANSMIT '\c3'
  228.  call gibsaus
  229. return
  230.  
  231. gibsaus:
  232.  fina=tempfile
  233.  if open('fit',fina,'W') then do
  234.   call writeln('fit',mytext)
  235.   call close('fit')
  236.   NEWLINE
  237.   SENDFILE fina
  238.   address command 'delete '||fina||' quiet'
  239.   continue
  240.  end
  241.  else do
  242.   TRANSMIT "\c1\k1FEHLER ! BITTE DEN SYSOP INFORMIEREN !\k0"
  243.   GETCHAR
  244.  end
  245. return
  246.  
  247.